L1 - Intro to Soft. Testing

Basic Defs.
- Error
	- inappropriate decision that leads to introduction of defect
- Defect (fault)
	- flaw in aspect of system that contributes to the occurrence of failure(s)
	- result from errors
- Failure (incident)
	- unacceptable behavior exhibited by system
	- when fault executes
- Test
	- exercising soft. with test cases
	- find failures
	- demonstrate correct execution
- Test Case
	- has ID
	- associated with program behavior
	- has input & list of expected output

VERIFICATION VS VALIDATION
-Verification
	- "are we building the system right"
	- soft. conforming to specs.

-Validation
	- "Are we building the right product"
	- soft. should do what user requests.

TESTING VS DEBUGGING
- Testing = confirming presence of faults
- Debugging = locating/repairing faults

Testing Goal --> Find most defects with limited resources

BLACK-BOX TESTING (FUNCTIONAL)
- derived from specs.
- reusable if code changes
- Function --> system (input) = ouput
- Advantage
	- independent of code
	- test case development can be done in parallel with coding
- Disadvantage
	- redundancies in test cases
	- possiblity of gaps of untested software


WHITE-BOX TESTING (STRUCTURAL)
- derived from documentation
- test coverage metrics
- visible code, target control flow in unit code
- Advantage
	- clear definitions
	- mathematical analysis
	- precise measurement
- Disadvantage
	- infeasable paths
	- no white-box strategy on its own guarantees adequate testing
	- unclear how to derive test cases

TESTING LEVELS
- Unit Testing --> test indiv. component
- Integration Testing --> expose problems arising from integrating components
- System Testing --> test complete system prior to delivery
- Acceptance Testing --> testing by user to see if reqs. are satisfied



